%module kuaisuan

%{
#include <numpy/arrayobject.h>
#include "kuaisuan.hpp"
#include "pytool.hpp"
using namespace kuai;
using namespace kuai::suan;
%}

%init %{
	// needed to make PyArray_Check work (=not crash)
    import_array();
%}

%include <std_string.i>

typedef float RealNumber;
typedef std::string String;

%include "exception.i"
%exception {
	try {
		$action
	} catch (const std::exception& e) {
		SWIG_exception(SWIG_RuntimeError, e.what());
	}
}



%include "kuaisuan.hpp"

%include "xyz.i"
%include "pbc.i"
%include "pytool.i"

%include "Energy.i"
%include "Control.i"
%include "Simulation.i"


